package RROcr

import "github.com/spf13/cast"

type ErrorCode int

const (
	ErrorCodeProxyIp                   ErrorCode = 1001 // IP代理网络错误
	ErrorCodeNetFail                   ErrorCode = 1011 // 网络异常，IP被封
	ErrorCodeChallengeInvalid          ErrorCode = 1002 // 获取challenge错误 请检查提交的challenge是不是极验网站的
	ErrorCodeChallengeInvalid2         ErrorCode = 108  // challenge参数有错误不是极验的或者请检查提交是否为三代类型并且检查参数challenge是否为空
	ErrorCodeInternalFail              ErrorCode = 1022 // 内部错误
	ErrorCodeCoordinateRecognitionFail ErrorCode = 1003 // 坐标识别错误
	ErrorCodeTrackFail                 ErrorCode = 1033 // 轨迹错误
	ErrorCodeInitFail                  ErrorCode = 1004 // 识别初始化错误 请检查是不是初始页面得来的challenge 长度为32位且只提交过平台一次且不是从抓包得来的
	ErrorCodeInitFail2                 ErrorCode = 1044 // 识别初始化错误1 请检查是不是初始页面得来的challenge 长度为32位且只提交过平台一次且不是从抓包得来的
	ErrorCodeRequestError              ErrorCode = 1005 // 获取必须参数失败
	ErrorCodeNotSupport                ErrorCode = 1055 // 屏蔽bug网站
)

func (e ErrorCode) String() string {
	switch e {
	case ErrorCodeProxyIp:
		return "IP代理网络错误"
	case ErrorCodeNetFail:
		return "网络异常，IP被封"
	case ErrorCodeChallengeInvalid:
		return "获取challenge错误 请检查提交的challenge是不是极验网站的"
	case ErrorCodeChallengeInvalid2:
		return "challenge参数有错误不是极验的或者请检查提交是否为三代类型并且检查参数challenge是否为空"
	case ErrorCodeInternalFail:
		return "内部错误"
	case ErrorCodeCoordinateRecognitionFail:
		return "坐标识别错误"
	case ErrorCodeTrackFail:
		return "轨迹错误"
	case ErrorCodeInitFail:
		return "识别初始化错误 请检查是不是初始页面得来的challenge 长度为32位且只提交过平台一次且不是从抓包得来的"
	case ErrorCodeInitFail2:
		return "识别初始化错误1 请检查是不是初始页面得来的challenge 长度为32位且只提交过平台一次且不是从抓包得来的"
	case ErrorCodeRequestError:
		return "获取必须参数失败"
	case ErrorCodeNotSupport:
		return "屏蔽bug网站"
	default:
		return cast.ToString(e)
	}
}
